﻿using CANO.Data.DAOs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CANO.WebSite.admin.UserControls
{
    public partial class ucEditForm : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                if (Request.QueryString["Edit"] != null)
                {
                    var tabOnEdit = Request.QueryString["Edit"].ToString();

                    //var editId = Request.QueryString["EditId"].ToString();

                    var editId = Session["EditId"].ToString();

                    switch (tabOnEdit)
                    {
                        case "TipoTelefono":  
                            var tipoTel =  TipoTelefonoDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Tipo Teléfono";
                            lblEditTipo2.Text = "Tipo Teléfono: ";
                            txtValueEdit.Text = tipoTel.TipoTelefono;
                            break;

						case "LugarInfluencia": 
                            var lugarInfluencia =  LugarInfluenciaDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Lugar Influencia";
                            lblEditTipo2.Text = "Lugar Influencia: ";
                            txtValueEdit.Text = lugarInfluencia.LugarInfluencia;
                            break;

						case "TipoPropiedad":
                             var tipoPropiedad =  TipoPropiedadDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Lugar Propiedad";
                            lblEditTipo2.Text = "Lugar Propiedad: ";
                            txtValueEdit.Text = tipoPropiedad.TipoPropiedad1;
                            break;

						case "Especialidad": 
                             var especialidad =  EspecialidadDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Lugar Propiedad";
                            lblEditTipo2.Text = "Lugar Propiedad: ";
                            txtValueEdit.Text = especialidad.Especialidad;
                            break;

						case "Nacionalidades": 
                             var nacionalidad =  NacionalidadDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Nacionalidad";
                            lblEditTipo2.Text = "Nacionalidad: ";
                            txtValueEdit.Text = nacionalidad.Nacionalidad;
                            break;

						case "Profesiones":
                            var profesion =  ProfesionDAO.GetById(Convert.ToInt32(editId));
                            lblEditTipo.Text = "Profesión";
                            lblEditTipo2.Text = "Profesión: ";
                            if(profesion.ProfesionDesc != null)
                                txtValueEdit.Text = profesion.ProfesionDesc;
                            break;

                        default: break;
                    }
                    pnlEdit.Visible = true;
                }
            }

            btnEliminar.ServerClick += btnEliminar_ServerClick;
            btnGuardar.ServerClick += btnGuardar_ServerClick;
        }

        void btnGuardar_ServerClick(object sender, EventArgs e)
        {

            if (Request.QueryString["Edit"] != null)
            {
                var tabOnEdit = Request.QueryString["Edit"].ToString();
                var editId = Convert.ToInt32(Session["EditId"]);

                switch (tabOnEdit)
                {
                    case "TipoTelefono":
                        TipoTelefonoDAO.Update(new TipoTelefonoDAO() { TipoTelefonoID = editId, TipoTelefono = txtValueEdit.Text });
                        break;

                    case "LugarInfluencia":
                        LugarInfluenciaDAO.Update(new LugarInfluenciaDAO() { LugarInfluenciaID = editId, LugarInfluencia = txtValueEdit.Text });
                        break;

                    case "TipoPropiedad":
                        TipoPropiedadDAO.Update(new TipoPropiedadDAO() { TipoPropiedadID = editId, TipoPropiedad = txtValueEdit.Text });
                        break;

                    case "Especialidad":
                        EspecialidadDAO.Update(new EspecialidadDAO() { EspecialidadID = editId, Especialidad = txtValueEdit.Text });
                        break;

                    case "Nacionalidades":
                        NacionalidadDAO.Update(new NacionalidadDAO() { NacionalidadID = editId, Nacionalidad = txtValueEdit.Text });
                        break;

                    case "Profesiones":
                        ProfesionDAO.Update(new ProfesionDAO() { TipoProfesionID = editId, ProfesionDesc  = txtValueEdit.Text });
                        break;

                    default: break;
                }
                pnlEdit.Visible = true;
            }

            Response.Redirect("/admin/ContactosAdmin.aspx?Edit=" + Request.QueryString["Edit"].ToString(), true);
        }

        void btnEliminar_ServerClick(object sender, EventArgs e)
        {
            var tabOnEdit = Request.QueryString["Edit"].ToString();
            var editId = Convert.ToInt32(Session["EditId"]);

            var result = 0;


            switch (tabOnEdit)
            {
                case "TipoTelefono":
                    result = TipoTelefonoDAO.Delete(editId);
                    break;

                case "LugarInfluencia":
                    result = LugarInfluenciaDAO.Delete(editId);
                    break;

                case "TipoPropiedad":
                    result = TipoPropiedadDAO.Delete(editId);
                    break;

                case "Especialidad":
                    result = EspecialidadDAO.Delete(editId);
                    break;

                case "Nacionalidades":
                    result = NacionalidadDAO.Delete(editId);
                    break;

                case "Profesiones":
                    result = ProfesionDAO.Delete(editId);
                    break;

                default: break;
            }

            if(result == 1)
                Response.Redirect("/admin/ContactosAdmin.aspx?Edit=" + Request.QueryString["Edit"].ToString(), true);
            else
                this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "alert('No se puede eliminar ya que está siendo usado.')", true);

        }

    }
}